//package com.easylinkin.linkappapi.lobar.config;
//
//import com.easylinkin.linkappapi.lobar.entity.Group;
//import java.util.List;
//import java.util.Map;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.scheduling.annotation.EnableScheduling;
//import org.springframework.scheduling.annotation.SchedulingConfigurer;
//import org.springframework.scheduling.config.ScheduledTaskRegistrar;
//import org.springframework.scheduling.support.CronTrigger;
//
///**
// * @Description: 基于接口SchedulingConfigurer的动态定时任务
// * @Author:
// */
//@Configuration
//@EnableScheduling
//public abstract class ConfigurerSchedulingDemo implements SchedulingConfigurer {
//    /**
//     * @Description:  重写配置定时任务的方法
//     * @param: scheduledTaskRegistrar
//     * @return: void
//     * @Author:
//     */
//    @Override
//    public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {
//        getGroups().forEach((tenantId,groups) -> {
//            scheduledTaskRegistrar.addTriggerTask(
//                //执行定时任务
//                () ->{
//                    taskService(groups);
//                },
//                //设置触发器
//                triggerContext -> {
//                    CronTrigger trigger = new CronTrigger(getCron(tenantId));
//                    return trigger.nextExecutionTime(triggerContext);
//                }
//            );
//        });
//    }
//
//    /**
//     * @Description: 查询班组数据
//     * @param:
//     * @return: void
//     * @Author:
//     */
//    public abstract Map<String, List<Group>> getGroups();
//
//    /**
//     * @Description: 执行定时任务
//     * @param:
//     * @return: void
//     * @Author:
//     */
//    public abstract void taskService(List<Group> groups);
//
//    /**
//     * @Description: 获取定时任务周期表达式
//     * @param:
//     * @return: java.lang.String
//     * @Author:
//     * @Date: 2020/8/28
//     */
//    public abstract String getCron(String tenantId);
//
//}